package conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class Agencia_r {
	// trocar os dados do banco de acordo com sua necessidade
	final String url = "dbc:mysql://localhost:3306/agencia";
	Connection conn = null;
	private static Agencia_r instance = null;

	/**
	 * Construtor da classe Inicializa a conexao
	 */
	public Agencia_r() {
		inicializar();
	}

	/**
	 * Metodo que carrega o driver a efetua a conexao com o banco de dados
	 */
	private void inicializar() {
		try {
			// dados do usuario, mudar de acordo com seus dados
			Properties connectProperties = new Properties();
			connectProperties.put("root", "");
			
			// 1. Loading a database driver
		   // DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());

			// 2. Creating a jdbc Connection
			conn = DriverManager.getConnection(url, connectProperties);

			System.out.println("Conectado com Sucesso!!!");
		} catch (SQLException sqle) {
			System.out.println("SQLException em Conecta.java "
					+ sqle.getMessage());
		}

	}

	/**
	 * Metodo invocado por outras classes para solicitar a conexao com banco de
	 * dados
	 * 
	 * @return
	 */
	public Connection getConnection() {
		return conn;
	}

	/**
	 * Metodo chamado por outras classes para instanciar um objeto do tipo
	 * conecta e poder utilizado Este metodo verifica se uma instancia ja foi
	 * feita ou nao
	 * 
	 * @return
	 */
	public static Agencia_r getInstance() {
		if (instance == null)
			instance = new Agencia_r();
		return instance;
	}

	/**
	 * Metodo utilizado para fechar a conexao com o banco de dados
	 */
	public void closeConnection() {
		try {
			if (conn != null)
				conn.close();
		} catch (SQLException e) {
			System.out.println("Erro ao fechar a conexao [" + e.getMessage()
					+ "]");
		}
	}

}
